home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk11 / cprof12 / sieve.c < prev   
C/C++ Source or Header  |  1995-03-18  |  645b  |  35 lines

  1. /*****************************************************************************
  2.  ***
  3.  *** The Sieve of Eratosthenes
  4.  ***
  5.  ***/
  6.  
  7. #include "time.h"
  8. #include "stdio.h"
  9. #define size 8190
  10. unsigned char flag[size+1];
  11. void main()
  12. {
  13.   register int i,k,p,primes;
  14.   int iter;
  15.   long t1,t2;
  16.   time(&t1);
  17.   for (iter=1;iter<=100;iter++)
  18.   {
  19.     for (i=0;i<=size;i++)
  20.       flag[i]=1;
  21.  
  22.     primes=0;
  23.     for (i=0;i<=size;i++)
  24.       {if (flag[i]==1)
  25.          {p=i+i+3;
  26.           for(k=i+p;k<=size;k+=p)
  27.             flag[k]=0;
  28.           primes++;
  29.           }
  30.        }
  31.   }
  32.   time(&t2);
  33.   printf("primes=%d in %ld seconds for 100 iterations\n",primes,(t2-t1));
  34. }
  35.